//@author Y. Laenen  C1011950  11/12/13

package controllers.updateControllers;


import javax.swing.JFrame;

import controllers.uiControllers.MainViewController;
import views.BookingPersoonsGegToevoegen;
import views.UpdatePassaViewFull;
import views.UpdatePassagierView;
import views.createViews.ToevoegenBetaalGegPassagier;
import views.searchViews.ZoekPassagierView;
import core.logic.services.createServices.ToevoegenBetalingsGegService;
import core.logic.services.createServices.ToevoegenBookingPersGegService;
import core.logic.services.searchServices.ZoekPassagierService;
import core.logic.services.updateServices.UpdatePassagierService;
import core.models.dataModels.createModels.ToevoegenBetalingsGegModel;
import core.models.dataModels.createModels.ToevoegenBookingPersGegModel;
import core.models.dataModels.searchModels.ZoekPassagierModel;
import core.models.domainModel.Passagier;

public class UpdatePassagierController {
	
	private static ZoekPassagierView scherm;
//	private static BookingPersoonsGegToevoegen schermview2;
//	private static ToevoegenBetaalGegPassagier schermviewBetaal;
	
	// nieuw updatescherm
//	private static UpdatePassagierView schermviewUpdate;
	
	private static UpdatePassaViewFull updateScherm;
	
	public static void showView ()
	{	
		ZoekPassagierModel model = ZoekPassagierService.getModel();
		model.setSchermModus("Update");
		
		scherm = new ZoekPassagierView(model);
		
		MainViewController.showView(scherm);
		
	}
	
	//Dit is de showview van het eigenlijke updatescherm dat opgeroepen wordt vanuit de search.
	//Het schermtype wordt op update gezet zodat de bookingview kan opgeroepen worden met nodige aanpassingen.
	public static void showUpdateView (Passagier p)
	{
		
		//model voor persoonsgegevens aanmaken en opvullen
		ToevoegenBookingPersGegModel model = ToevoegenBookingPersGegService.getToevoegenBookingPersGegModel();

		p = UpdatePassagierService.GetFullPassagier(p);
		UpdatePassagierService.fillModel(model, p);
		model.setSchermType("update");
		//persoonsscherm aanmaken
//		schermview2 = new BookingPersoonsGegToevoegen(model);
//		schermview2.setTitle("Update Passagier");
		
		
		//model aanmaken en opvullen voor betalingsscherm
		ToevoegenBetalingsGegModel modelBetaling = ToevoegenBetalingsGegService.GetToevoegenBetalingsModel();
		modelBetaling.setSchermType("update");
		UpdatePassagierService.fillBetalingsModel(modelBetaling, p);
		
		
		updateScherm = new UpdatePassaViewFull(model, modelBetaling);
		MainViewController.showView(updateScherm);
		
		
		//betaalscherm aanmaken
//		schermviewBetaal = new ToevoegenBetaalGegPassagier(modelBetaling);
//		
		
		//beide schermen toevoegen aan het ene updatescherm
//		schermviewUpdate.add((schermview2).getContentPane());
//		schermviewUpdate.add((schermviewBetaal).getContentPane());
		
		// MainViewController.showView(schermview2);
				
	}
	
	
	
	public static void handleView (ToevoegenBookingPersGegModel model)
	{
		UpdatePassagierService.updatePassagier(model);
	}
	
	public static void handleViewSearch (ZoekPassagierModel model)
	{
		//pak ingevuld model terug op
		
		
		//dispose bestaand scherm
		MainViewController.removeView(scherm);
		scherm.dispose();
		
		//stuur naar Service en krijg model terug met ingevulde Personeelslijst 
		model = ZoekPassagierService.findPassagier(model);
		
		//maakt nieuw scherm aan met volledig ingevuld model
		scherm = new ZoekPassagierView(model);
		
		//Zet het in mainview 
		MainViewController.showView(scherm);
	}

}
